76f4e7f96bdb10ad44edf3197700073fa28df9b1,Frameworks/PlugIns/PostgresqlPlugIn/Sources/com/webobjects/jdbcadaptor/PostgresqlSynchronizationFactory.java,PostgresqlSynchronizationFactory,foreignKeyConstraintStatementsForRelationship,#EORelationship#,178
Before Change
EOSQLExpression expression;
results = new NSMutableArray();
superResults = super.foreignKeyConstraintStatementsForRelationship(relationship);
count = superResults.count();
for (i = 0; i < count; i++) {
expression = (EOSQLExpression) superResults.objectAtIndex(i);
String s = expression.statement();
s = replaceStringByStringInString(") INITIALLY DEFERRED", ") DEFERRABLE INITIALLY DEFERRED", s);
expression.setStatement(s);
results.addObject(expression);
// timc 2006-11-06 check for enableIdentifierQuoting
String tableNameWithoutSchemaName = externalNameForEntityWithoutSchema(relationship.entity());
String tableName = expression.sqlStringForSchemaObjectName(expression.entity().externalName());
s = replaceStringByStringInString("ALTER TABLE " + tableNameWithoutSchemaName, "ALTER TABLE " + tableName, s);
expression.setStatement(s);
NSArray columnNames = ((NSArray) relationship.sourceAttributes().valueForKey("columnName"));
StringBuilder sbColumnNames = new StringBuilder();
for (int j = 0; j < columnNames.count(); j++) {
sbColumnNames.append((j == 0 ? "" : ", ") + expression.sqlStringForSchemaObjectName((String) columnNames.objectAtIndex(j)));
}
String indexName = externalNameForEntityWithoutSchema(relationship.entity()) + "_" + columnNames.componentsJoinedByString("_") + "_idx";
results.addObject(createExpression(expression.entity(), "CREATE INDEX " + indexName + " ON " + tableName + "( " + sbColumnNames.toString() + " )"));
After Change
@Override
public NSArray<EOSQLExpression> foreignKeyConstraintStatementsForRelationship(EORelationship relationship) {
NSMutableArray<EOSQLExpression> results = new NSMutableArray<EOSQLExpression>();
NSArray<EOSQLExpression> superResults = super.foreignKeyConstraintStatementsForRelationship(relationship);
for (EOSQLExpression expression : superResults) {
String s = expression.statement();
s = replaceStringByStringInString(") INITIALLY DEFERRED", ") DEFERRABLE INITIALLY DEFERRED", s);
expression.setStatement(s);
results.addObject(expression);
// timc 2006-11-06 check for enableIdentifierQuoting
String tableNameWithoutSchemaName = externalNameForEntityWithoutSchema(relationship.entity());
String tableName = expression.sqlStringForSchemaObjectName(expression.entity().externalName());
s = replaceStringByStringInString("ALTER TABLE " + tableNameWithoutSchemaName, "ALTER TABLE " + tableName, s);
expression.setStatement(s);
NSArray<String> columnNames = ((NSArray<String>) relationship.sourceAttributes().valueForKey("columnName"));
StringBuilder sbColumnNames = new StringBuilder();
for (int j = 0; j < columnNames.count(); j++) {
sbColumnNames.append((j == 0 ? "" : ", ") + expression.sqlStringForSchemaObjectName(columnNames.objectAtIndex(j)));
}
String indexName = externalNameForEntityWithoutSchema(relationship.entity()) + "_" + columnNames.componentsJoinedByString("_") + "_idx";
results.addObject(createExpression(expression.entity(), "CREATE INDEX " + indexName + " ON " + tableName + "( " + sbColumnNames.toString() + " )"));